#define _CRT_SECURE_NO_WARNINGS  1
//一定要动手，例子不管多么简单，建议至少自己手敲一遍看看是否理解了里头的细枝末节。
//一定要学会思考，思考为什么要这样，而不是那样。还要举一反三地思考
#include<stdio.h>
//struct {
//	char name[20];
//	int age;
//	char id[20];
//}s1;
//struct
//{
//	char name[20];
//	int age;
//	char id[20];
//}*p;
//int main()
//{
//	p = *s1;
//	return 0;
//}
//typedef struct Node
//{
//	int age;
//	struct Node* next;
//}Node;
#include<stdio.h>

//struct stu {
//	char name[20];
//	int age;
//	char id [20];
//}s1 = { "张三",18,{1,5,3} }, s2 = { "李四",28,{5,7,7} };
//struct S {
//	double d;
//	struct stu sn;
//	int arr[10];
//};
//int main()
//{
//	//printf("%d", s2.age);
//	struct stu s4 = { "张三",34,{5,7,7,4} };
//	struct s i = { 3.14,{"zhangsan",18,{1,2,3,4}},{4,3,2,1} };
//	printf("%s %d", s4.name, s4.age);
//	for (int i = 0; i < 20; i++)
//	{
//		printf("%d", s4.id[i]);
//	}
//	return 0;
//}
//struct stu {
//	char name;
//	int age;
//}s1 = { 'a',100 }, s2 = { 'b',499 }, s3 = {.name = 'n',.age = 999};
//struct S {
//	double d;
//	struct stu sn;
//	int arr[10];
//};
//int main()
//{
//	//printf("%c %d", s1.name, s1.age);
//	struct S s = { 3.14,{'g',888},{1,2,3,4} };
//	printf("%lf %c %d\n", s.d, s.sn.name, s.sn.age);
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", s.arr[i]);
//	}
//	return 0;
//}
#include<stddef.h>
struct s1 {
	char c1;
	int i;
	char c2;
};
struct s2 {
	int i;
	char c1;
	char c2;
};
int main()
{
	printf("%d\n", sizeof(struct s1));
	printf("%d", sizeof(struct s2));
	/*printf("%d\n", offsetof(struct s1,c1));
	printf("%d\n", offsetof(struct s1,i));
	printf("%d\n", offsetof(struct s1,c2));*/
	return 0;
}